package com.edu.admin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.edu.admin.common.BaseMapper;
import com.edu.admin.entity.SysMenu;
import com.edu.admin.vo.MenuVo;

/**
 * 角色表数据操作接口
 * 
 * @author Wangjiong
 * 
 */
@Mapper
public interface MenuMapper extends BaseMapper<SysMenu> {

	/**
	 * 获取角色列表
	 * 
	 * @param 
	 * 
	 * @return List<MenuVo>
	 */
	List<MenuVo> getMenuList();
	
	
	/**
	 * 获取角色列表
	 * 
	 * @param productId
	 * 
	 * @return List<MenuVo>
	 */
	List<MenuVo> getMenuListByProductId(Long productId);
	
	/**
	 * 获取子菜单列表
	 * 
	 * @param menuParentId
	 * 
	 * @return List<MenuVo>
	 */
	List<MenuVo> getMenuListByParentId(Long menuParentId);
	
	
	/**
	 * 根据层级获取菜单列表
	 * 
	 * @param productLevel
	 * @param roleLevel
	 * @param menuParentId
	 * 
	 * @return List<MenuVo>
	 */
	List<MenuVo> getMenuListByLevelAndParent(@Param("productLevel") Integer productLevel,
										 @Param("roleLevel") Integer roleLevel,
										 @Param("menuParentId") Long menuParentId);
	
	/**
	 * 根据层级和学校id获取菜单列表
	 * 
	 * @param productLevel
	 * @param roleLevel
	 * @param menuParentId
	 * @param schoolId
	 * 
	 * @return List<MenuVo>
	 */
	List<MenuVo> getMenuListByLevelAndSchoolId(@Param("productLevel") Integer productLevel,
											@Param("roleLevel") Integer roleLevel,
											@Param("menuParentId") Long menuParentId,
											@Param("schoolId") Long schoolId);
	
	

}
